﻿using System;

namespace Program13
{
    class Program
    {
        /// <summary>
        /// 变量与常量
        /// const的值是在编译期间确定的，
        /// 因此只能在声明时通过常量表达式指定其值。
        /// 而static readonly是在运行时计算出其值的。
        /// const是静态常量，所以在编译的时候就将A与B的值确定下来了
        /// 
        /// static readonly是动态常量，常量的值在编译期间不解析，所以开始都是默认值，
        /// X与Y都是int类型，故都是0。而在程序执行到X=Y*10;所以X=0*10=0,程序接着执行到Y=10这句时候，
        /// 才会真正的Y的初值10赋给Y。
        /// </summary>
        /// <param name="args"></param>
        /// 
        static readonly int X = Y * 10;
        static readonly int Y = 10;
        static void Main(string[] args)
        {          
            ////变量
            //int num = 10;
            //num = 20;
            //Console.WriteLine(num);


            ////常量
            ////不能改变值
            const int num1 = 50;
            //// *num1 = 20;
            //Console.WriteLine(num1);


            const int a = num1 * 10;
            Console.WriteLine(a);
        }
    }
}
